1 using System;
2 using
UnityEngine;
3 using
System.Collections.Generic;
4
5 namespace
UnityStandardAssets.Effects
6 {
7     
public class WaterHoseParticles : MonoBehaviour
8     {
9         
public static float lastSoundTime;
10         
public float force = 1;
11
12
13         
private List<ParticleCollisionEvent> m_CollisionEvents = new List<ParticleCollisionEvent>();
14         
private ParticleSystem m_ParticleSystem;
15
16
17         
private void Start()
18         {
19             m_ParticleSystem = GetComponent<ParticleSystem>();
20         }
21
22
23         
private void OnParticleCollision(GameObject other)
24         {
25             
int numCollisionEvents = m_ParticleSystem.GetCollisionEvents(other, m_CollisionEvents);
26             
int i = 0;
27
28             
while (i < numCollisionEvents)
29             {
30                 
if (Time.time > lastSoundTime + 0.2f)
31                 {
32                     lastSoundTime = Time.time;
33                 }
34
35                 
var col = m_CollisionEvents[i].colliderComponent;
36                 
var attachedRigidbody = col.GetComponent<Rigidbody>();
37                 
if (attachedRigidbody != null)
38                 {
39                     Vector3 vel = m_CollisionEvents[i].velocity;
40                     attachedRigidbody.AddForce(vel*force, ForceMode.Impulse);
41                 }
42
43                 other.BroadcastMessage(
"Extinguish", SendMessageOptions.DontRequireReceiver);
44
45                 i++;
46             }
47         }
48     }
49 }


Gõ tìm kiếm nhanh...